<js>file相关
Blob对象
- Blob对象表示一个不可变、原始数据的类文件对象。
属性:
- Blob.size
- Blob.type
方法:
- Blob.slice([start,[ end ,[contentType]]]),返回一个新的 Blob对象,包含指定范围数据。
Blob()构造函数
- 返回一个新的 Blob 对象。
- var aBlob = new Blob( array, options );
参数:
- array 是一个由ArrayBuffer, ArrayBufferView, Blob, DOMString 等对象构成的 Array ,或者其他类似对象的混合体,它将会被放进 Blob。DOMStrings会被编码为UTF-8。
- options:type,默认值为 “”,它代表了将会被放入到blob中的数组内容的MIME类型。endings,默认值为”transparent”,用于指定包含行结束符\n的字符串如何被写入。
js创建并下载excel
- 步骤
- 创建Blob对象
- 转换为dataURL或者ObjectURL
- 使用a标签download下载
- 示例代码
1 | <div id="myTable"> |
File对象
- File 对象是特殊类型的 Blob。
获取方式
- 元素上选择文件后返回的 FileList 对象
1 | let fileInput = document.getElementById('myFile') |
- 由拖放操作生成的 DataTransfer 对象
1 | //可以是个div |
- 来自 HTMLCanvasElement 上的 mozGetAsFile() API
属性
- File.lastModified:文件最后修改时间
- File.lastModifiedDate:文件最后修改时间的 Date 对象
- File.name:名称
- File.size:大小
- File.type:类型
- File.webkitRelativePath:路径(非标准的)
1 | //input需要设置 webkitdirectory 属性(只允许选择文件夹) |
File()构造器
语法
- var myFile = new File(bits, name[, options]);
参数
- bits:ArrayBuffer,ArrayBufferView,Blob,或者 DOMString 对象的 Array — 或者任何这些对象的组合。这是 UTF-8 编码的文件内容。
- name:USVString,表示文件名称,或者文件路径。
- options:type: DOMString,表示将要放到文件中的内容的 MIME 类型。默认值为 “” 。lastModified: 数值,表示文件最后修改时间的 Unix 时间戳(毫秒)。默认值为 Date.now()。
- https://developer.mozilla.org/zh-CN/docs/Web/API/File/File
1 | var file = new File(["foo"], "foo.txt", { |
FileReader对象
- https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader
- 允许Web应用程序异步读取存储在用户计算机上的文件
- FileReader()返回一个新构造的FileReader
属性:
- FileReader.error:读取文件发生错误
- FileReader.readyState:状态数字 EMPTY(0)、LOADING(1)、DONE(2)
- FileReader.result:文件的内容。该属性仅在读取操作完成后才有效。
事件:
- 继承自EventTarget,所以所有这些事件也可以通过addEventListener方法使用。
- FileReader.onabort:中断时触发
- FileReader.onerror:错误时触发
- FileReader.onload:读取操作完成时触发
- FileReader.onloadstart:
- FileReader.onloadend:
- FileReader.onprogress:处理progress事件。该事件在读取Blob时触发。
方法:
- FileReader.abort():终止操作
- FileReader.readAsArrayBuffer()
- FileReader.readAsBinaryString()非标准的
- FileReader.readAsDataURL()
- FileReader.readAsText()
例子
- input图片展示
1 | <input type="file" id="inputFile"> |
ObjectURL
- https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL
- https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL
- objectURL = URL.createObjectURL(object);表示指定的File对象或Blob对象的url
- window.URL.revokeObjectURL(objectURL);释放一个现有的对象URL
1 | //选择图片并转换为对象URL显示 |
1 | //展示pdf |